
public class Scheduler {
	
	public static int tsBasico(Transacao tx, Dado dado, int op) {
		switch (op) {
		case 1:
			if (tx.getTimestamp() < dado.getTimestampWrite())
			{
				TransacaoManager.transacoes.abort(tx);
				TransacaoManager.transacoes.restart(tx);
				return -1;
			}
			else
			{
				// todo: executar read(dado)
				if (dado.getTimestampRead() < tx.getTimestamp())
					dado.setTimestampRead(tx.getTimestamp());
			}
			break;
		case 2:
			if (tx.getTimestamp() < dado.getTimestampRead() || tx.getTimestamp() < dado.getTimestampWrite())
			{
				TransacaoManager.transacoes.abort(tx);
				TransacaoManager.transacoes.restart(tx);
				return -1;
			}
			else
			{
				// todo: executar write(dado)
				dado.setTimestampWrite(tx.getTimestamp());
			}
			break;
		default:
			// operação incorreta
			break;
		}
		return 0;
	}

}
